/*******************************************************************************
 * Copyright 2020 huanggefan.cn
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package models

import "database/sql"

type Chapter struct {
	UUID        string         `gorm:"not null; primaryKey; type:uuid; default:gen_random_uuid()"`
	Name        sql.NullString `gorm:"not null; type:varchar(32)"`
	Description sql.NullString `gorm:"not null; type:varchar(99); default:''"`
	CourseUUID  sql.NullString `gorm:"not null; uniqueIndex:uk_chapter_courseUUID_index"`
	Course      Course         `gorm:"foreignKey:CourseUUID; references:UUID; constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
	Index       sql.NullInt32  `gorm:"not null; type:integer; uniqueIndex:uk_chapter_courseUUID_index"`
	Content     sql.NullString `gorm:"not null; type:text; default:''"`
	Questions   []Question     `gorm:"foreignKey:ChapterUUID; references:UUID; constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
}
